package boot

import (
	"context"
	"time"
	"yunj/pkg/global"
	"yunj/pkg/yunj/core/redis"

	"github.com/worklz/go-captcha"
)

// 创建验证码存储结构体，实现存储接口（captcha.go下的StoreInterface）
type CaptchaStore struct {
}

// 实现将哈希值和验证码存储到数据库或其他存储中
func (s *CaptchaStore) Set(hash, code string) (err error) {
	err = redis.Set(context.Background(), hash, code, 600*time.Second)
	return
}

// 实现从数据库或其他存储中获取哈希值对应的验证码
func (s *CaptchaStore) Get(hash string) (code string, err error) {
	code, err = redis.Get(context.Background(), hash)
	return
}

// 初始化图片验证码
func InitCaptcha() {
	// 创建Captcha实例
	global.Captcha = captcha.NewCaptcha(&CaptchaStore{})
}
